home *** CD-ROM | disk | FTP | other *** search
-
- { Return true if input is a MIDI status byte
- }
- function midi_status(midi_data_byte:byte):boolean;
- begin
- if (midi_data_byte > MAX_MIDI_DATA) then
- midi_status:=true
- else
- midi_status:=false;
- end;
-
- { Return the channel # from a MIDI status byte
- }
- function midi_chan(running_status:byte):byte;
- begin
- midi_chan:=running_status and 15;
- end;
-
- { Return the command portion of a MIDI status byte
- }
- function midi_cmnd(running_status:byte):byte;
- begin
- midi_cmnd:=(running_status shr 4) and 7;
- end;
-
- { Return # of data bytes associated
- with a given MIDI status byte
- }
- function nmdat(running_status:byte):byte;
- begin
- if (midi_cmnd(running_status) in
- [PROGRAM_CHANGE, AFTER_TOUCH_P]) then
- nmdat:=1
- else
- nmdat:=2;
- end;
-
- { Limit input to valid MIDI data range
- }
- function midi_data_limit(midi_data_byte:integer):byte;
- begin
- if midi_data_byte < MIN_MIDI_DATA then
- midi_data_limit:=MIN_MIDI_DATA
- else if midi_data_byte > MAX_MIDI_DATA then
- midi_data_limit:=MAX_MIDI_DATA
- else
- midi_data_limit:=midi_data_byte;
- end;
-
- se if midi_data_byte > MAX_MIDI_DATA then
- midi_data_limit:=MAX_MIDI_DATA
- else
- m